FWCalendar
and
FWCAddEvent

Ron Goertz
16 Milltown Rd
N Stonington CT 06359
goertz@earthlink.net

These macros are made available for your personal use and no-cost distribution. Permission for any other use must be obtained from the author. The most current version can always be found by following the "Apps" link on my homepage (http://home.earthlink.net/~goertz/Ron/). If you would like to be notified of updates, send me an email telling me what you like/don't like about FWCalendar or FWCAddEvent.

FWCalendar is Y2K Compliant!


Features of FWCalendar and FWCAddEvent

A macro for creating calendars in Final Writer v4+ and PageStream v3+, and a macro for adding events to those calendars.



Installation

Simply use the installation icon. This will install all the appropriate components in directories of your choosing. If you are updating a previous installation, any existing data files will not be overwritten. Due to ARexx variable parsing limitations, the path to the FWCalendar files must not contain any spaces!

If you prefer doing a manual installation, copy FWCalendar.rexx, FWCAddEvent.rexx, and the appropriate FWCalendar.prefs and FWCTranslations.txt files (found in the folder corresponding to your country; the optional translation file may or may not exist, depending on your country) to the same directory. If desired, the FWCHistory directory and the FWCRandom.txt file can be copied to the same directory used for FWCalendar.rexx. Due to ARexx variable parsing limitations, the path to the the FWCalendar files must not contain any spaces! Although any directory can be used, the ARexx macros, the translation file, the FWCHistory directory, and the FWCRandom.txt file must be in the same directory. The preference file(s) can be stored anywhere; the file requestor used for loading preference files defaults to the directory for the current preference file or the directory where FWCalendar.rexx is found. If you want to have images inserted on specified dates, copy the "Images" directory to the same directory as the macros (this location can be changed; see the images section).


Support Programs
Required
Preferred    
ClassAct v42.80+   Also known as Reaction on OS3.5 machines, this provides the actual GUI used for requesters in FWCalendar and FWCAddEvent. Should already be installed on OS3.5 machines.
AWNPipe v2.48+
(Bill Parker)
  Required to pass commands from ARexx (the programming language used for FWCalendar) to ClassAct. Should already be installed on OS3.5 machines.
or    
Alternative    
BGUI
(Jan van den Baard)
  Provides the actual GUI used for requesters in FWCalendar and FWCAddEvent.
BGUIRexx
(Jilles Tjoelker)
  Required to pass commands from ARexx (the programming language used for FWCalendar) to BGUI.

"Version" command   This must be the standard Amiga Version command, or one that is output compatible with it. "Version" replacement programs, such as WBVersion and VersionWB, may not provide outputs suitable for FWCalendar to work properly.

Suggested
FrontPubScreen
(John Fieber)
or
Publican
(Lee Kindness)
or
MagicPubName
(Franz Schwarz)
  Possibilities for getting requesters to open on the proper screen. Also see the HostScreen variable.

rexxmathlib.library
(Thomas Richter)
or
date.library
(Kai Hofmann)
  Required if you want to include the phases of the moon on your calendars. Although much larger, Date.library is also much faster in determining the phases of the moon. If RexxMathLib is used, it must be v38.1+.
CAUTION: FFPpatch 1.8beta � 1997 by Jess Sosnoski causes problems with the math routines in rexxmathlib.library and may make it impossible to calculate/insert the phases of the moon.

SunCalc
(Brian Savage)
  Required to determine sunrise/sunset times

Visage
(Magnus Holmgren)
or
ImageDTInfo
(Dámaso Domínguez)
or
PicSize
(Ralph Reuchlein)
  Necessary for inserting images. See Images for more information on setting variables for the graphics application
None of these libraries are included with this distribution, but are available from Aminet.


Adding to Menus

If you want to add the macros to Final Writer's "User" menu, follow the instructions in the Final Writer manual.

If you want to add the macros to Pagestream's "Scripts" palette (note that <path> refers to the actual path of the directory you used for the installation):

Select "New..." from the Scripts Palette menu
Enter "FWCalendar" as the Name
Enter "RX <path>/FWCalendar.rexx" in the Script box
Select a shortcut combination if desired
Click on "OK"

Select "New..." from the Scripts Palette menu
Enter "FWCAddEvent" as the Name
Enter "RX <path>/FWCAddEvent.rexx" in the Script box
Select a shortcut combination if desired
Click on "OK"

Select "Save" from the Scripts Palette menu



Getting Started

Final Writer
Select the Calendar macro entry from Final Writer's "User" menu (if you installed it there) or select the "User/Other/ARexx Script ..." menu item and find the FWCalendar macro.

PageStream
You must close all open documents before starting this script. Select the FWCalendar macro entry from Pagestream's "Scripts" palette (if you followed the installation procedures included with this guide), otherwise select the "Scripts/Play External Script ..." menu item and find the FWCalendar macro.

Both Final Writer & PageStream
It is normal for there to be a delay as the requester is created.

The main requester allows you to change the various options. Initially, the settings in this requestor reflect the defaults hard-coded in the FWCalendar macro. To load a preference file (for example, one localized to your country, such as was installed as part of the installation routine), click on the "Load" button and select the desired preference file. Note that both FWCalendar and FWCAddEvent use the same preference file for initializing variables; the results may be unpredictable when changing this file between using FWCalendar and FWCAddEvent. See notes on the Variable Editor for more details.

After the required information is entered, the screen's magnification is reduced to speed up rendering and it's off and running. Highlights contained in the preference file will be rendered automatically ("Highlight" is the term used to describe holidays, anniversaries, birthdays, and other notable dates added to the calendar as it is being generated. Events that do not repeat themselves every year (at least not at the same time) are added after the calendar is generated using FWCAddEvent, a separate program included in this distribution.). When the macro is finished, the screen magnification will be restored to normal. Note that updating is turned off during rendering, so the calendar may look strange while being rendered.

In order for FWCAddEvent to work, specific information is written in the upper left corner of the generated calendar; as this is written in white, it will be "invisible." If you are using PageStream as the host application, don't render any objects at the location 0,0 or FWCAddEvent will fail.



Adding Events

FWCAddEvent is used to add events to a calendar that has already been generated. These events do not repeat themselves every year (at least not at the same time). This differs from the Highlight Editor called from FWCalendar itself. Events entered in the Highlight Editor represent holidays, anniversaries, birthdays, and other notable dates and are added to the calendar as it is being generated.

The requestor is generated "on the fly," so a delay between placing a call to FWCAddEvent and the requestor showing up is normal.

Note that both FWCalendar and FWCAddEvent use the same preference file for initializing variables; caution should be exercised when changing the file between using FWCalendar and FWCAddEvent or the results may be unpredictable.

Use
Create a calendar with FWCalendar or load a previously created calendar; FWCAddEvent will not work unless a generated calendar is present! To run FWCAddEvent for Final Writer, select the "FWCAddEvent" item from the "User" menu (if you didn't follow the installation procedures included with this guide, select the "User/Other/ARexx Script ..." menu item and find the FWCAddEvent macro). For PageStream, select the FWCAddEvent macro entry from the "Scripts" palette (if you followed the installation procedures included with this guide), otherwise select the "Scripts/Play External Script ..." menu item and find the FWCAddEvent macro.

(ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

The FWCAddEvent consists of the following fields, settings, and gadgets:

Event/File: The top-left gadget cycles between "Event" and "File" choices. When the "Event" choice is selected, you can enter the desired event in the text box. When the "File" choice is selected, a requester will pop up allowing you to select a pre-defined event data file (see Prefs & Data for the format of this file); the name of the chosen file will be displayed in the text box. In the case where a file is chosen, most of the remaining gadgets will be ghosted as the values are either read from the data file or set to the defaults.

Event: Enter the event or the name of the event file here. Any quotes (single or double) entered as part of the event will be included in the event when it is added to the calendar. See the section on Prefs & Data for information on formatting event data files.

Font: Shows the currently-selected font. The font button ("Ff") must be used to change the font.

Font Size: The small box to the right of the font name shows the font size currently in use (always a whole number when the host application is Final Writer); this can be changed as desired. Note that, although any font size can be entered, the positioning of the added line will be determined according to the AddEventRows variable and internal calculations. Looking at the image above, for example, the default font size is 9 pts. If an event with a font size of 18 pts is entered on line 3, that event will cover both lines 3 and 4; attempts to add other events on line 4 would result in the text of the events overlapping. Except for special effects, it is best to keep the font size as calculated by FWCAddEvent.

Ff: The font requester must be used to change the font. When the host application is Final Writer, a standard file requestor will appear from which you can locate and select the desired font; when the host appliction is PageStream, a list of all installed fonts will appear.

Reset: The "Reset" button will reset the font to Font.Highlight (as determined by either the internal defaults or the loaded preference file) and the font size to the value calculated by FWCalendar.

Date Selectors: The majority of the requestor consists of buttons representing the days of the month (including days of the previous and next months as appropriate). The dates clicked will alternate between being entered as the Start and End dates, shown to the right of the calendar buttons. The first date clicked will be entered as the Start date, the next as the End date, the next as the Start date, the next as the End date, and so on.

Start: Displays the selected start date for an event. The Start date does not need to be designated when the "File" option is selected; in this case, the Start dates in the data file will be taken as actual days and not offset days (see data files for more information on the format of files used with the "File" option). If the Start date is after the End date, the dates will be switched in the macro.

End: Displays the selected end date for an event. The End date does not need to be designated for single-day events, and can't be designated if the "File" choice is selected. If the Start date is after the End date, the dates will be switched in the macro.

Text: Used to select a color for the event text. When this button is pressed, a list of available colors will be presented (if the host application is Final Writer, the actual color will be shown as well). The default for the text color is determined by Color.AddEvent.

Line: Determines on which line of the date cell the event will be inserted, ranging from 0 to the maximum number of lines that will fit in a calendar cell (defaults to line 1). Note that these are the lines that will fit on a full-sized day; half-size days (those days at the end of the month that are split) will not be able to hold the full complement of lines. Certain lines may also be filled by Highlights added during generation of the calendar; events added to these lines would overwrite the highlight text.

Boxed: This checkbox tells whether events should be outlined in a box or not. All multi-day events WILL BE boxed. Boxed entries will have text lines centered; unboxed multi-line events will have the second and subsequent lines indented. An empty (text-less) box can be generated if desired.

Box: Used to select a color for the outline/background box. When this button is pressed, a list of available colors will be presented (if the host application is Final Writer, the actual color will be shown as well). The default for the box color is determined by Background.AddEvent, or <Clear> if that variable has not been set. <Clear> will result in any background picture showing through the box.

Frequency: Events can be added Once, Weekly, or Biweekly. Weekly and Biweekly events will be repeated from the starting point to the end of the month. All events can be single-day (Staff Mtg every Wednesday) or multi-day (Thursday/Friday seminar every week this month), and can wrap around the weekend.

OK: Once the desired information has been entered, click the OK gadget. The text will be drawn on the screen one or more times as it is sized to fit in the span of days you selected. After it is sized properly, it will be placed in the proper location (can you help me speed this part up?).

Cancel: The requestor will keep reappearing automatically until the requestor is cancelled or closed.

FWCAddEvent is designed to work on calendars generated by FWCalendar. To determine the calendar layout, FWCAddEvent macro reads specific information used to create the calendar from the calendar itself and from the preference file used to generate the calendar; caution should be exercised when changing the file between using FWCalendar and FWCAddEvent or the results may be unpredictable.

Texts added via FWCAddEvent are simply text objects. If one of these text objects is no longer desired (perhaps it ended up in the wrong place), it must be deleted through the host application (Final Writer or PageStream). There is no provision from FWCAddEvent to delete previously added event text.



Data Files

This section describes the five data files that support creation of calendars: preference files, translation files, FWCAddEvent data files, history files, and random files. The preference file is used both to generate a calendar and to later add events to that calendar. The translation file is used to translate the information in the requesters to your language. The FWCAddEvent data file is used to enter pre-defined event data with FWCAddEvent. The history file allows you to add a 'day in history' event to the generated calendar. Finally, the random file allows you to add a random entry to the generated calendar. None of these files are necessary for FWCalendar or FWCAddEvent to work properly; if the files are absent, internal defaults will be used as appropriate.

Preference Files
Preference files contain highlight and image information and variable values that differ from FWCalendar's defaults. There are over 100 user-definable
variables that contain, among others, format, color, and font information; the variables are set using the Variable Editor. Different preference files can be maintained for generating different calendar styles.

To create a new preference file, click the "Reset" button; this will set all variables to their default values. In this case, if variables have been changed from their default settings when you generate a calendar, you will be prompted for the filename of the new preference file. The loaded preference file, along with any changes just made, can be saved under a new name using the "Save as" button.

Both FWCalendar and FWCAddEvent use the same preferences file for initializing variables, so you should not change the preferences between using FWCalendar and FWCAddEvent. See notes on the Variable Editor for more details.

Highlights are also contained in the preference file, and are added using the Highlight Editor (see the Variables tab of the Variable Editor). Highlight is the term used to describe holidays, anniversaries, birthdays, and other notable dates added to the calendar as it is being generated. Events that do not repeat themselves every year (at least not at the same time) are added after the calendar is generated using FWCAddEvent). There is no design limitation on the number of highlights that can be assigned, since multiple highlights can be assigned for each day of the year.

Images (also added using the Highlight Editor (see the Variables tab of the Variable Editor)) can be inserted in the center of certain dates such as birthdays, anniversaries, and other days. The images can be inserted whether or not a highlight is inserted on that date. Only one image can be inserted for a given day.

Translation Files
Translation files exist for several of the supported languages (thanks in large part to those non-American users who want to make FWCalendar look good for their country). To create a translation file, simply take the FWCTranslations file (found in the American folder in this distribution) and translate the American phrases to phrases in your language. If you develop new translation file, please submit it to me so I can include it with future distributions.

FWCAddEvent Data
Certain events may need to be added to the calendar each month, always in the same order and always the same number of days apart (such as a rotating work schedule). Or you may want to add the same events to numerous calendars with different formats. In these cases, it may be convenient to pre-define these events and enter them automatically. To do so, select the "File" option from the upper-left gadget of the FWCAddEvent requester, then select the pre-defined event data file.

The pre-defined event data file can have any name and be located anywhere. When the file requester appears, the default directory will be the same as the location of the other FWCalendar files. The data file consists of sets of lines containing the following keywords:

Start    The actual start day of the event. If a start day was entered in the FWCAddEvent requester, this value represents the offset from that "root date" (this value is used to calculate the event's actual start date. For example, if 12 was selected as the start day and Start is set to 4, then the actual start date of the event would be the 16th). This keyword is required.
End    The actual end day of the event. If a start day was entered in the FWCAddEvent requester, this value represents the offset from that "root date" (this value is used to calculate the event's actual end date. For example, if 12 was selected as the start day and End is set to 6, then the actual end date of the event would be the 18th). If omitted,End will be set equal to Start.
Font    If the host application is Final Writer, the full path and name of the desired font; if the host application is PageStream, the name of an installed font. If omitted, the font defined by Font.Highlight will be used.
Size    The desired font size (will be truncated to a whole number if the host application is Final Writer). If omitted, the calculated font size (based on AddEventRows) will be used.
Line    The line number to used for the event (0 - 16)�. If omitted, the event will be printed on line one.
Options    B for boxed, W for Weekly, 2 for Biweekly (only one of W or 2 can be used, but either can be used in conjunction with B.). If omitted, the event will not be boxed (unless it is a multi-day event) and it will not be repeated for succeeding weeks.
TextColor    The color (eg, blue or red) to be used for the event text. If omitted, the event will be printed in black or in the color defined by Color.AddEvent.
BoxColor    The color (eg, blue or red) to be used for the box's background. If omitted, the box (if drawn) will be clear or the color defined by Background.AddEvent.
Event    The event (if single or double quotes are used, they will be included on the calendar). This keyword is required.

These keywords and their values can appear in any order, but there must be a blank space on either side of the "= " sign. Events groups are separated by a blank line, and comment lines (beginning with '/*') will be ignored. Only Start and Event are required; this will cause the event to be printed on line one of start day (unless a day was selected as the "root date" in the FWCAddEvent requester).

Unboxed, single-day events will have subsequent lines indented. The text will be split between lines automatically, so there is no need to indicate specific line breaks; if desired, line breaks can be indicated by inserting ' //' where the line break is desired. Boxed events have all lines centered.

IMPORTANT: note that if a Start day is given in the FWCAddEvent requester, both Start and End are offsets from the "root date" selected in the FWCAddEvent requester. If the "root date" is the first day of October, for example, the keyword pair Start = 5, End = 8 will cause the event to span October 6 through October 9.

Examples (assume no Start day given in the FWCAddEvent requester):
Start = 1
Event = Testing
Testing (without quotes) will be inserted on line one of the first day of the month
Start = 5
End = 6
Line = 2
Event = "Testing"
"Testing" (including quotes) will be inserted (and boxed because it spans more than one day) on line 2 of the 5th and 6th of the month
Start = 4
Line = 1
Font = Zapf-Chancery
Size = 12
TextColor = Green
BoxColor = Blue
Options = bw
Event = 'FWCalendar is Great!'
'FWCalendar is Great!' (including single quotes) will be inserted with green, 12-pt, Zapf-Chancery text, backed by a blue box, on line 1 of the 4th of the month. This will be repeated weekly through the end of the calendar
Start = 15
Line = 4
Options = 'B'
Event = Teacher Conferences//No School
Teacher Conferences will be centered on line 4 and No School will be centered on line 5 of the 15th of the month. The pair of lines will be backed by a box of the color defined in the appropriate data file (or white if the default data was used).

History Data
The history data is a directory (named FWCHistory and located in the same directory as FWCalendar.rexx) containing 12 text files (named 01, 02, 03, ..., 12), one for each month of the year. Each text file contains lines of data to be associated with specific days of the month. The data can be whatever you'd like it to be, including historical birthdays or historical events (the history data included with this distribution includes historical birthdays garnered from the internet).

If there is only one event noted for a particular date, that event will be entered on the calendar as it is generated. If there are multiple events noted for a date, however, one will be chosen at random and entered on the calendar as it is generated.

Each line in the data files has the format

|4 1643 - Sir Isaac Newton

Every line begins with "|" to allow quick location of new lines and to provide a method for counting events.

The next part of the data line consists of the day of the month with which the event is associated. In the example above, the 4 indicates that the event should be associated with the 4th of the month. Everything following the day will be entered as the event, exactly as shown on the line.

Groups of days are separated by single lines containing only the "|" character:

|4 1643 - Sir Isaac Newton
|4 1809 - Louis Braille
|
|5 1779 - Stephen Decatur
|5 1938 - Juan Carlos I
|

Random Data
The random file is named FWCRandom.txt and must be located in the same directory as FWCalendar.rexx.

This feature is similar to adding a random tagline to the end of emails as they are sent. The data file simply consists of text lines, each preceded by the "|" character. Everything after the "|" will be entered on the calendar as it is generated. The file included with this distribution contains thoughts for the day that are intended not to offend anyone.

The number of lines that will actually fit in a given date is determined by the font and the HighlightRows variable. The number of lines that will fit on half-size days (days at the end of the month that are split) will be less than the full complement of lines. Certain lines may also be filled by Highlights added during generation of the calendar; events added to these lines would overwrite the highlights.



Variables

There are over 100 variables that the user can set to customize either the calendars generated or the behavior of FWCalendar while the calendar is being created.

User variables are contained in localized preferences files. This allows you to keep your variables separate so you don't have to change them every time the macros are updated. No values need to be entered in the preferences file if the values listed as default are acceptable; if the default value is not acceptable, enter the desired values in the preferences file.

Changes made to the preferences file using the variable editor are saved, but not to the preferences file itself (this file is never modified by the program). Should you change any values in the preferences file, you will need to select the "Load" button in the variable editor and re-load the preferences file for the changes to be read. Note that this will cause any previous changes made with the variable editor to be lost, so it is always best to keep your preferred default values set in the preferences file.

Both FWCalendar and FWCAddEvent use the same preferences file for initializing variables, so the preferences file should not be changed between using FWCalendar and FWCAddEvent. See notes on the Variable Editor for more details.

There should be no need to change variables in the macro itself.

All font sizes are computed according to the size of the TextArea and the MiniCal heights relative to the area available to the calendar. The font used for dates, highlights, and FWCAddEvent text can have the width adjusted.

The following rules MUST be followed in creating or modifying a preferences file:

Any comments must be fully contained in the same line.
Variable names must be separated from the '=' by at least one space.
The variables must be followed by the line: /* End Pass One - DO NOT DELETE THIS LINE!!! */

Localization strings
Localized preferences files are included with the distribution. Each file includes all of the currently used translation strings (ending in '$'). If you would like to include your language, please contact the author. If you would like to improve the translation strings for your language, please email the author the updated preferences file.

Variables
Special variable pairs are available to allow variations in sentence structure for different languages and to customize parts of the calendars. The variable pairs and their defaults are:

GeneratingM$ = 'Generating %s %s calendar'
GenMVars = 'Month.Month EnteredYear'

GeneratingY$ = 'Generating %s calendar'
GenYVars = 'EnteredYear'

Header$ = '%s %s'
HeaderVars = 'Month.Month EnteredYear'

SubHeader$ = ''
SubHeaderVars = (undefined)

Each of the %s place holders in the first of each variable pair is replaced by one of the internal variables identified in the second of each variable pair. Although any internal variable can be used, the most useful variables are:

Month for the number of the calendar month
Month.Month for the name of the calendar month
EnteredYear for the calendar year

With a little knowledge of ARexx, variations of these variables can be created:

left(Month.Month,3) for the 3-letter abbreviation of the calendar month
right(EnteredYear,2) for the last two digits of the calendar year

Note: the replacement variables must not contain any spaces.

The defaults result in requesters saying 'Generating August 2000 calendar' and 'Generating 2000 calendar', and a calendar header of 'August 2000' (depending on the selected month/year, of course), respectively.

 

Variable Index
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
AddEventRows
AdjustDST
AltColor.
Background.
Bold.
CalendarBorder
CalendarShadow
CenterHistory
CenterRandom
Color.
CornerRadius
DateOffset
DoHide
EndWeek
FinalView
Font.
ForceBGUI
GenMVars
GenYVars
GfxApp
GfxAppPath
GfxCmd
GfxTemplate
HeaderLoc
HeaderSize
Header$
HeaderVars
HelpTime
HighlightRows
HostScreen
ImageClass.
LaunchM
LaunchY
Leading
Line.
MagnifyExtras
MaxImgHeight
MaxImgWidth
MiniCalHeight
MiniCalSpacing
MiniCalWidth
MinHistoryWidth
MinRandomWidth
MinWidth
MoonRadius
PageHeight
PageWidth
ShadowType
ShiftLMini
ShiftRMini
StartWeek
StretchDateH
StretchDateW
Storage
SubHeaderLoc
SubHeaderSize
SubHeader$
SubHeaderVars
SunCalcPath
Text.
TextAdj
TTextArea
WeekdaySize
Width.
WTextArea
Variables by Function
Calendar Format
CalendarBorder
CalendarShadow
CornerRadius
EndWeek
MiniCalHeight
MiniCalSpacing
MiniCalWidth
PageHeight
PageWidth
ShadowType
ShiftLMini
ShiftRMini
StartWeek
TTextArea
WTextArea
Calendar Content
Header$
HeaderVars
ImageClass.
SubHeader$
SubHeaderVars
Text.
Content Format
AddEventRows
CenterHistory
CenterRandom
DateOffset
HeaderLoc
HeaderSize
HighlightRows
Leading
MagnifyExtras
MaxImgHeight
MaxImgWidth
MinHistoryWidth
MinRandomWidth
MinWidth
MoonRadius
StretchDateH
StretchDateW
SubHeaderLoc
SubHeaderSize
TextAdj
WeekdaySize
Width.
Fonts & Colors
AltColor.
Background.
Bold.
Color.
Font.
Line.
Miscellaneous
AdjustDST
DoHide
FinalView
ForceBGUI
GenMVars
GenYVars
GfxApp
GfxAppPath
GfxCmd
GfxTemplate
HelpTime
HostScreen
LaunchM
LaunchY
Storage
SunCalcPath

 
Miscellaneous Variables
AddEventRows The maximum number of rows of FWCAddEvent text allowed on each day; affects the point size of the FWCAddEvent font
Values: any decimal number (larger = smaller text)
Default: 9
AdjustDST Take daylight savings time changes into account when using SunCalc
Values: 0 = don't adjust, 1 = adjust (requires RexxTricks.library)
Default: 1
CalendarBorder Percentage² of calendar width to offset the calendar outline box
Values: Decimal number (0 = no outline box)
Default: 0
CalendarShadow Percentage² of calendar width to offset the calendar shadow box
Values: Decimal number (0 = no shadowbox)
Default: 0
CenterHistory Flag indicating whether or not the history entry should be centered
Values: 0 = don't center, 1 = center
Default: 1
CenterRandom Flag indicating whether or not the random entry should be centered
Values: 0 = don't center, 1 = center
Default: 1
CornerRadius Cause day-boxes to have rounded corners rather than be rectangular boxes. If Final Writer is the host application, then don't use with DoDateBox
Values: FW = Actual radius fixed by FW, but adjust this value to shift dates away from corners
PGS = Any small decimal number (represents percentage² of day-cell height)
Default: 0
DateOffset Percent² of box width to offset dates from edge of box
Values: any decimal number
Default: 2
DoHide Hide PageStream window while rendering (see Tips & Solutions)
Values: 0 = don't hide, 1 = hide
Default: 0
EndWeek Day of the week to use in the last calendar column. When used in conjunction with StartWeek, a range of days (e.g., Monday through Friday) can be printed.
Values: -1 = Day before StartWeek
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
Default: -1 (day before StartWeek)
FinalView Sets the magnification percent² of the calendar after it is created
Values: FW = Any whole number (20 - 400)
PGS = Any number (5 - 3000)
Default: 75
ForceBGUI Force BGUI to be used as the GUI (if you can't get the ClassAct GUI to work for some reason, you may have to set ForceBGUI = 1 in your preference file using a text editor.
Values: 0 = don't force, 1 = force use of BGUI
Default: 0
GenMVars The variables substituted for the %s placeholders in GeneratingM$ (found in the FWCTranslations.txt file)
Values: Any internal FWCalendar variable
Default: 'Month.Month EnteredYear'
GenYVars The variables substituted for the %s placeholders in GeneratingY$ (found in the FWCTranslations.txt file)
Values: Any internal FWCalendar variable
Default: 'EnteredYear'
GfxApp The name of the graphics application used to determine the datatype, width, and height of images to be inserted
Values: see Images
Default: 'Visage'
GfxAppPath Path to graphics application
Values: : or / terminated path to the graphics application; don't include the application name with the path!
Default: None
GfxCmd The template used in calling the graphics application
Values: see Images
Default: '%s info'
GfxTemplate The template used in parsing the graphic application's output
Values: see Images
Default: '. "0a"x . ImgDT ImgWidth "x" ImgHeight "x" .'
HeaderLoc Percent² down the text area (TTextArea or WTextArea, as appropriate) the header (month/year) will be placed
Values: any decimal number
Default: 25
HeaderSize Percent² of text area (TTextArea or WTextArea, as appropriate) to be used for the header text (Header$)
Values: any decimal number
Default: 50
Header$ The text used for the header, with %s placeholders for the varibles found in HeaderVars
Values: Any text
Default: '%s %s'
HeaderVars The variables substituted for the %s placeholders in Header$
Values: Any internal FWCalendar variable
Default: 'Month.Month EnteredYear'
HelpTime Set the time (approximately in seconds) that Help balloons remain open
Values: Any decimal number
Default: 4
HighlightRows The maximum number of rows of Highlight text desired in each day; affects point size of Highlight font
Values: any decimal number (larger = smaller text)
Default: 9
HostScreen Identifies the public screen to be used for requesters (also see Tips & Solutions)
Values: The case-sensitive name of the public sreen to use for requesters.
Default: None
ImageClass. Image files to be used for common events (see Images
Vaules: The name of an image file
Default: None
LaunchM Variable to be INTERPRETed upon completion of monthly calendar
Values: See Launch Program
Default: None
LaunchY Variable to be INTERPRETed upon completion of yearly calendar
Values: See Launch Program
Default: None
Leading The height of each text line expressed as a percentage² of the font height.
Values: any decimal number (larger = lines farther apart)
Default: 100
MagnifyExtras The font size of the extras (sunrise, julian, etc) text; expressed as a percentage² of the internally calculated highlight font size.
Values: any decimal number (<100 will shrink extras text, >100 will make extras text larger)
Default: 100
MaxImgHeight Maximum percentage² of boxheight to be used for images
Values: Decimal number less than 1
Default: 75
MaxImgWidth Maximum percentage² of boxwidth to be used for images
Values: Decimal number less than 1
Default: 75
MiniCalHeight Percentage² of text area height used for minicals
Values: any decimal number
Default: 60
MiniCalSpacing Percentage² of print width placed between full-year minicals
Values: any decimal number
Default: 5
MiniCalWidth Percent² of the minical height (MiniCalHeight) to use for the width of the minicals
Values: any decimal number
Default: 200
MinHistoryWidth The smallest font width allowed when compressing history entries, expressed as a percent² of the normal width
Values: any decimal number (lower = more compression allowed)
Default: 70
MinRandomWidth The smallest font width allowed when compressing random entries, expressed as a percent² of the normal width
Values: any decimal number (lower = more compression allowed)
Default: 70
MinWidth The smallest font width allowed when compressing highlights and events, expressed as a percent² of the normal width
Values: any decimal number (lower = more compression allowed)
Default: 80
MoonRadius Percentage² of boxheight to use for moon image
Values: Decimal number less than 100
Default: 10
PageHeight Height of paper in current units
Values: any decimal number in your measurement units
Default: FW = read from preferences
PGS = 11.0
PageWidth Width of paper in current units
Values: any decimal number in your measurement units
Default: FW = read from preferences
PGS = 8.5
ShadowType Determines the type of shadow used
Values: 'P' = Partial (only shadow edges drawn)
  'F' = Full (complete shadow box drawn)
Default: 'P'
ShiftLMini Values for shifting the left minical; shift = value/720 inches
Values: any number (- = shift left, + = shift right)
Default: 0
ShiftRMini Values for shifting the right minical; shift = value/720 inches
Values: any number (- = shift left, + = shift right)
Default: 0
StartWeek Day of the week to use in the first calendar column. When used in conjunction with EndWeek, a range of days (e.g., Monday through Friday) can be printed.
Values: 0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
Default: 0 (Sunday)
StretchDateH Percent² of calculated date height to use for dates, can give "drop cap" effect
Values: Any number, best 100 - 400
Default: 100
StretchDateW Percent² of calculated date width to use for dates
Values: Any number, best 100 - 400
Default: 100
Storage : or / terminated path where temporary files will be created (see Executing Commands for how to automatically delete temporary files)
Values: Any : or / terminated path
Default: 'RAM:FWC/'
SubHeaderLoc Percent² down the text area (TTextArea or WTextArea, as appropriate) the subheader will be placed. Note that the subheader can be place above the header
Values: any decimal number
Default: 0
SubHeaderSize Percent² of text area (TTextArea or WTextArea, as appropriate) to be used for the subheader text (SubHeader$)
Values: any decimal number
Default: 0
SubHeader$ The text used for the subheader, with %s placeholders for the varibles found in SubHeaderVars
Values: Any text
Default: ''
SubHeaderVars The variables substituted for the %s placeholders in SubHeader$
Values: Any internal FWCalendar variable
Default: ''
SunCalcPath Path to SunCalc
Values: : or / terminated path to SunCalc; don't include the application name with the path!
Default: None
Text. Text strings to be included before the value¹
Default: ''
Julian - Julian days
WeekNumber - Sequential week number
Sunrise - Sunrise time
Sunset - Sunset time
TextAdj Percent² of font height to lower inserted text when Final Writer is the host application; takes into account that Final Writer text is located according to the baseline and not the top or bottom of the text block. TextAdj represents how far down the font the baseline is located.
Values: any decimal number
Default: 77
TTextArea Percent² of print height used for top of tall calendar
Values: any decimal number
Default: 15
WeekdaySize The percent² of available vertical space used for the names of the weekdays
Values: any decimal number
Default: 50
Width. Font widths¹ (in percent²)
Values: FW - Any whole number (4 - 255)
PGS - Any number (1 - 655 by 0.01)
Default: Calculated or 100
Date - Day numbers, highlight & FWCAddEvent text
WTextArea Percent² of print height used for top of wide calendar
Values: any decimal number
Default: 20


Colors
Color. Text & moon colors¹
Default: Black
AddEvent - FWCAddEvent text
Date - Day numbers
Extended - Day numbers for previous/next months
Header - Calendar header (Month & Year)
Highlight - Day numbers & text for non-holiday highlights
HighlightH - Day numbers & text for holiday highlights
History - History text
Julian - Julian day number
MiniCal - MiniCal day numbers
Moon - Moon image
NoteBox - Note box label
Random - Random text
SubHeader - Calendar subheader
Sunrise - Sunrise time
Sunset - Sunset time
Weekday - Weekday titles
WeekNumber - Sequential week number
AltColor. Text colors for use when there is a non-white background¹
Default: Black
Date - Day numbers
Extended - Day numbers for previous/next months
Highlight - Day numbers & text for non-holiday highlights
HighlightH - Day numbers & text for holiday highlights
History - History text
Julian - Julian day number
Random - Random text
Sunrise - Sunrise time
Sunset - Sunset time
WeekNumber - Sequential week number
Line. Line and box colors¹
Default: Black
CalBorder - Outline box around calendar, defaults to Line.Grid
Grid - Current-month dates (main grid color)
MiniCal - Minical borders
Extended - Previous/next months
AddEvent - Boxed events added with FWCAddEvent
NoteBox - Note box
Background. Background colors¹
Default: <Clear> or white
AddEvent - Boxed events added with FWCAddEvent
CalShadow - Calendar shadow
Highlight - Non-holiday highlights
HighlightH - Holiday highlights
MiniCal - Minicals
MiniCalShadow - Minical shadow
NoteBox - Note box
Standard - Used if no other background is defined
Weekend - Saturdays & Sundays

Fonts
Font. Font names¹
Values: FW = Any valid font including FULL path
PGS = Any valid font name
Default: FW = 'FWFonts/SWOLFonts/SoftSans_Bold'
PGS = 'Helvetica-Bold'
Date - Day numbers
Extras - Sunrise/sunset, julian/julian left, etc
Highlight - Highlights and FWCAddEvent
Weekday - Weekday titles
Header - Calendar header (Month & Year)
SubHeader - Calendar subheader
Minical - MiniCal day numbers
Bold. Bolded font names¹
Values: FW = Any valid font including FULL path
PGS = Any valid font name
Default: FW = 'FWFonts/SWOLFonts/SoftSans_Bold'
PGS = 'Helvetica-Bold'
MiniCal - MiniCal day numbers
FYMiniCal - Full-year MiniCal day numbers

¹These variables will appear as a combination of the "stem" and a particular variable, such as Color.Date

²All percents are such that 1 = 1% and 100 = 100%



Variable Editor

The Variable Editor is the opening requester for FWCalendar. Changes made in the Variable Editor are saved to the preference file.

Both FWCalendar and FWCAddEvent use the same user-chosen preference file for initializing variables, so you should not change the preference file between using FWCalendar and FWCAddEvent.

(ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).


Control Buttons:
The control buttons show up on all tabs.

(Start) Month: Allows you to select the month of the generated calendar. If the selected calendar type is multi-month (only available when PageStream is the host application), then this gadget selects the first month to be generated. This gadget will not be available for "yearly" calendar types.

End Month: Allows you to select the final month of a multi-month calendar (only available when PageStream is the host application) to be generated. This gadget will not be present for "yearly" or "single-month" calendar types.

Year: Allows you to select the year of the generated calendar. The up/down gadget can be used to change the value, or the value can be entered directly.

Calendar Type: Select the desired calendar type: Single-month, where each application document consists of a single calendar; Multi-month (only available when PageStream is the host application), where each application document consists of a number of calendars as defined by the start- and end- months; or Yearly, where each application document consists of twelve mini-calendars for the year.

Go: Begin generation of the selected calendar type and save changes made to the settings. (For the ClassAct GUI only, holding down a shift key will prevent changes made to the settings from being saved.)

Reset: Causes the default settings (the settings coded into FWCalendar) to be loaded.

Load: Allows you to load a preference file. The full path and file name of the loaded preference file will be displayed at the top of the requester; if the PrefsName variable is set in the preference file, that name will be displayed in place of the preference file's path and file name.

Save As: Allows you to save the current settings under a new name. The new file then becomes the default preference file.

Cancel: Cancels the operation. If the requester is cancelled, no changes made to any variables (either in the variable requester or in the highlight editor) will be saved.


Options & Layout Tab
MiniCals: If checked, mini-calendars showing the previous and next months will be included in the upper-left and upper-right corners of the calendar page.

Highlights: If checked, highlights found in the preference file will be included. Use the Highlight Editor to set the highlights.

Images: If checked, images will be included on days either defined in the Highlight Editor or identified as an Imageclass. variable. Note that the "Images" checkbox will be ghosted if FWCalendar can't find the graphics application identified in GfxApp. If the "Images" checkbox is ghosted and you don't think it should be, check the values of the GfxApp and GfxAppPath variables to make sure they are properly set.

Box Dates: If checked, a box will be drawn around the date in the Font.Date color. If Final Writer is the host application, don't use this option with CornerRadius (the curvature of the boxes will be different and not look very good).

Extended: If checked, the days from the previous month and the next month will be printed on the calendar as appropriate. This option is not possible at the same time as either the "Extra week at top" or "Note Box" options.

Extra week at top: If checked, the last week of months that extend into the 6th week will be printed as full-sized cells at the top of the calendar rather than half-height cells at the bottom of the calendar. This option is not possibe if the "Extended" option has been selected.

Note box: If checked, an empty box with the user-definable label (defaulting to "Notes") will be included where ever empty calendar boxes would show up. This option can be used with the "Extra week at top" option, but cannot be used with the "Extended" option (the entire calendar is filled with calendar boxes in this case.

Margins: The text boxes surrounding the cycle gadget correspond to (going clockwise from the top) the top, right, bottom, and left margins. The values are read from the application's preferences when Final Writer is the host application, and default to 0.5 units (as set by the application's preferences) when PageStream is the host application. If one of the margin gadgets is active, the <TAB> key will cycle through the margin settings.

Orientation: The center cycle gadget alternates between "Tall" (portrait) and "Wide" (landscape) settings.


Variables Tab
Font Variable: Select the desired font (see the variables for details) from the cycle gadget.

Font Name: This is a read-only gadget.

Ff: The file requester gadget must be used to change the font. When Final Writer is being used as the host application, a standard file requestor will appear from which you can select the desired font; when PageStream is being used as the host application, a list of all installed fonts will appear.

Color Variables: The text, line, and background colors (see the variables for details) will be presented in a list.

>: This gadget will allow you to cycle through the variables that have color attributes. Shift-click on this gadget to cycle through in reverse order.

Color: When this button is pressed, a list of available colors will be presented (if the host application is Final Writer, the actual color will be shown as well). Some variables allow <Clear> as an option, while others don't.

Date Color = Highlight Color: If checked, the date (and date box, if this option is selected) will be printed in the same color as the highlight text. If the checkbox is cleared, the date color will be determined by Color.Date.

Use Daily Colors: If checked, the date (and date box, if this option is selected) will be printed in a color determined by the variables Color.Sunday through Color.Saturday. If the checkbox is cleared, the date color will be determined by Color.Date.

Highlight Editor: The highlight editor can be invoked by clicking on this gadget.

Miscellaneous Variables: The miscellaneous (see the variables for details) will be presented in a list.

>: This gadget will allow you to cycle through the miscellaneous variables. Shift-click on this gadget to cycle through in reverse order.

Variable Value: Except for GfxApp, GfxAppPath, and SunCalcPath (the file requester gadget must be used to change the values of these variables), set the value of the selected variable here; you must either <RETURN> or <TAB> after entering the value. Quotes will automatically be added for variables requiring non-numeric values.

File Requester: Used for setting the values of GfxApp, GfxAppPath, SunCalcPath and ImageClass variables.

+IC: (ClassAct GUI only) Add an ImageClass variable. ImageClass variables can be deleted by clearing the value for the desired ImageClass variable.


Extras Tabs
The options for adding extras (moon phases, julian dates, week numbers, etc.) are found in the third and fourth tabs. The check boxes in the "Top" tab will locate the extras in the two available top positions, while the check boxes in the "Bottom" tab locate the extras in the three available bottom positions. Each of the extras is mutually exclusive--each extra can be used in one location only, and each location can hold only one extra. If any extras are added to the top of a date cell, highlights for that date will begin down one line.

The extras are:
Phases: Include the phases of the moon¹

Week Number: Include the sequential week number on the first day of each week.

Julian: Include the Julian day (the number of days since the beginning of the year).

Julian Left: Include the number of days remaining in the year.

Jul/Jul Left: Include both the Julian day and the number of days remaining, separated by a "/", in the same location.

Sunrise: Include the sunrise time².

Sunset: Include the sunset time².

Rise/Set: Include both the sunrise and sunset times, separated by a "/", in the same location².

History: Include a 'day in history' event. Only available for the bottom-center location, and no other bottom-located extras can be selected in conjunction with this. Will be ghosted unless the history files are present (see data files).

Random: Include a random event. Only available for the bottom-center location, and no other bottom-located extras can be selected in conjunction with this. Will be ghosted unless the random file is present (see data files).

¹Will be ghosted unless either rexxmathlib.library by Thomas Richter or date.library by Kai Hofmann are available.

²Will be ghosted if FWCalendar can't find SunCalc; check the value of the SunCalcPath variable to make sure you have properly set the path to SunCalc.



Highlights

"Highlight" is the term I'm using to describe holidays, anniversaries, birthdays, and other notable dates. Highlights are added to the calendar as it is being generated. The Highlight Editor described below is not the same as the requester that's a part of FWCAddEvent. The events entered in FWCAddEvent are added to a calendar that has already been generated. These events do not repeat themselves every year (at least not at the same time).

There is a limitation of 50 highlights per month, but multiple highlights can be assigned for a given day. There is a way to overcome this limitation; if you run into the upper limit, let me know and I'll implement the fix.

There are several possibilities for highlight information, depending on whether the highlight falls on a fixed date or can "float". Both fixed highlights and floating highlights and can be set to happen monthly, while "fixed" highlights can also be set to show up only on weekdays or to always show up on the last day of the month. Highlights can also be set to occur weekly or biweekly (ie, on a certain weekday of only odd or even weeks).

Multiple highlights falling on the same day will automatically be accounted for. If you're using different date-cell background colors for your holiday-highlights and other highlights, only the box for the first highlight will be drawn (this keeps boxes from covering up already-rendered text).

If a highlight is wider than the calendar box width, the highlight will be compressed if possible and word-wrapped if necessary.

The dates of all highlights will be bolded in minicalendars. If a highlight is indicated as a holiday, the date for that highlight will also be boxed in the minicalendars.


Highlight Editor

Highlights entered in this editor are added to the calendar as it is being generated. This is different from the requester that's a part of FWCAddEvent. The events entered in FWCAddEvent are added to a calendar that has already been generated. These events do not repeat themselves every year (at least not at the same time).

The Highlight Editor is called by clicking on the Highlight Editor button found on the "Variables" tab of the Variable Editor. This editor consists of the following fields, settings, and gadgets:

(ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

Event: Enter the highlight as you want it to appear in the calendar, including any quotes you want to appear. Although either single or double quotes can be used, only one type can be used in a given highlight.

File Selector: The file selector gadget is used to select images to appear on the calendar. If you want to shift the image (see the Images section), you can enter the comma-separated x- and y-shifts after selecting the image.

V: The chooser gadget will list the highlights for the current month in chronological order, even as new events are added.

>: The right-pointing arrow is used to select the next (chronological) highlight, wrapping around to the first event when necessary.

Comment: Enter an optional comment for the highlight. Although the comment won't be printed, it is available to maintain compatability with previous versions of FWCalendar.

Month Selector: The month selector is used to select the month in which the highlight falls. Also available in this selector are "All" (for those highlights (like pay days) that happen at the same time every month) and "Easter" for Easter-based highlights. Changes to the current month's highlights are saved to memory when a new month is selected; changes are not saved to the preference file until a calendar is generated.

Date Selectors: The calendar of gadgets is used to select the date on which a highlight falls. The "LD" gadget is used for highlights that fall on the last day of a month.

Color: The print color for the highlight can be selected with this gadget. If <Clear> is selected, the print color for the highlight will be determined by the values of Color.Highlight, Color.HighlightH, AltColor.Highlight, and AltColor.HighlightH as appropriate.

Type: The type of highlight can be Fixed, Floating, (Bi)Weekly, or Easter-based. The descriptions of each of these highlight types can be read below.

Week Number: See Floating Highligts below.

Week Type: See (Bi)Weekly Highligts below.

Weekend: See Fixed Highligts below.

Holiday: If you want a highlight to be treated as a holiday (which allows different background colors to be used for the days than used for non-holiday entries), check the "Holiday" box.

Easter: See Easter Highligts below.

Add Event: Highlights can be added to the existing highlights with this gadget. Added highlights are saved to memory when the "Done" gadget is pressed, but not saved to the preference file until a calendar is generated.

Delete Event: Highlights can be deleted with this gadget. The current highlight list will be saved to memory when the "Done" gadget is pressed, but not saved to the preference file until a calendar is generated.

Done: Selecting "Done" will cause any changes made to be saved to memory when the "Done" gadget is pressed, but not saved to the preference file until a calendar is generated. Changes are also saved to memory anytime a new month is selected with the month selector. You can exit without saving current changes by selecting the "Close" gadget in the upper left corner of the requester; changes already saved to memory by switching months can only be cancelled by cancelling the main Variable Editor.

Fixed highlights are those highlights that always fall on the same day (for example, a birthday), and those highlights that usually fall on the same day (for example, tax day in America is always April 15 unless April 15 falls on a weekend, in which case it falls on the following Monday).

If a highlight always falls on the same day, leave the "Weekend" gadget set to "OK". If the highlight can't fall on the weekend, then set the "Weekend" gadget to "Prev Day" if the highlight gets moved up to the previous Friday, or to "Next Day" if the highlight gets moved back to the following Monday. Always set the date gadget to the day the highlight should fall on, even if it shows up on the weekend in the particular month shown in the editor.

The "LD" gadget is used for highlights that fall on the last day of a month.


Floating highlights are those that occur during a certain week of the month. Mother's Day, for example, always falls on the Sunday during the second week of May, while Memorial Day always falls on the Monday during the last week of May.

To set these highlights, select the date gadget for the day on which the highlight falls. The "Week Number" gadget will automatically indicate which week you have chosen. If you would like to change the week number, select the proper week number in the "Week Number" gadget, and the date will change accordingly. Be especially aware of the week number setting for those highlights that occur during the last week of a month rather than during the fourth week of a month.


(Bi)Weekly highlights can be set to occur every week (weekly) or every other week (biweekly). When dates are selected for these highlights, the "Week Type" gadget will be set to either "Odd" (if the selected date occurs during an odd-numbered week of the year) or "Even" (if the highlight occurs during an even-numbered week of the year). If the highlight should occur every week, set the "Week Type" gadget to "All". Changing the week type setting will cause the date to be changed accordingly.

 


Easter-based highlights can be set only when "Easter" has been selected in the month-selector gadget. In this case, the number of days before Easter the highlight occurs is entered in the "Easter" string as a negative number, or the number of days after Easter the highlight occurs is entered in the "Easter" string as a positive number.



Highlight Images

You can specify images to be inserted in the center of certain dates such as birthdays, anniversaries, Christmas, Tax Day, etc. Some images can be inserted whether or not a highlight is inserted on that date. Only one image can be inserted for a given day.

When used with PageStream as the host application, FWCalendar needs to know the type of the images to be used; when used with Final Writer as the host application, FWCalendar needs to be know the image dimensions. You can define the graphics application you want to use to determine this information by defining the GfxApp and GfxAppPath to point to one of three applications: Visage by Magnus Holmgren; ImageDTInfo by Dámaso Domínguez; and PicSize by Ralph Reuchlein. Each of these applications is available from Aminet. Visage is used as the default application since was the required application up to FWCalendar v3.76. If you would like to see another application supported, contact me.

Encapsulated Postscript images (in Adobe Illustrator-compatible format) can be used when PageStream is the host application. The images must be identified as type "Post" by datatypes for them to be inserted properly. Postscript capability can be added to your datatypes-compatible Amiga with PostScriptDT.lha by Swen Stullich used with post.library by Adrian Aylward. Important: this datatype will only recognize Postscript files if they have the ".ps" suffix.

Image Classes -Image classes can be defined for frequently occurring events such as birthdays and anniversaries. The variable stem is ImageClass., and the variable itself must match a word that will be used in the highlight (for example, ImageClass.Birthday will define the image to be used for all highlights containing the word "Birthday", and ImageClass.Anniversary will define the image to be used for all highlights containing the word "Anniversary"). The value of the variable is the file name of the image to be used.

(ClassAct GUI only) Image class variables can be added using the '+IC' button on the Variables tab of the variable requester. After defining the name of the image class, the value must be set as outlined above.

Image class variables can be deleted by clearing the value of the desired variable.

Images are normally printed in the center of the date box. If you would like to shift the image, the shift parameters can be defined as part of the image-file definition. The template for an image variable is:

ImageClass.<Class> = "<File> [,<x shift> [,<y shift>]]"

where the shifts are in inches.

For an image (found in the "Images" directory in the same directory as FWCalendar) to be used for all birthdays:

ImageClass.Birthday = "Birthday.iff"

The "Birthday.iff" image will be inserted on all days that have a highlight with the word "Birthday" in it.

To shift the image a quarter inch to the right and up a tenth of an inch, the entry would be:

ImageClass.Birthday = "Birthday.iff, 0.25, -0.1"

For an image (found in some other directory) to be used for all anniversaries:

ImageClass.Anniversary = "WB:IFF/Anniversary.iff"

The "WB:IFF/Anniversary.iff" image will be inserted on all days that have a highlight with the word "Anniversary" in it.

Specific Images - Images for specific dates are entered using the Highlight Editor. Images are not currently supported for Easter-based highlights, but images can otherwise be defined for any of the highlight formats (fixed, floating, and (bi)weekly). Images don't require any highlight text to be set for that date.



Scaling

FWCalendar is fully scaleable. Just change the margins in the preferences file and run the macro; a proportionally scaled new calendar will be generated. There is no need to change font sizes: a calendar rendered to fit in a 7.5" x 10.0" space will look essentially identical to a calendar rendered to fit in a 1.875" x 2.5" space.

When Pagestream is used as the host application, calendars are completely scaleable. Because Pagestream allows fractional font sizes, and font sizes from 1 pt to 50000 pt in 0.001 pt increments, you could theoretically print a 0.79"-high calendar that would look just like a 7.5"-high calendar. Obviously printer limits come into play before Pagestream's font-size limitations.

Final Writer has a lower limit of 4 pts for allowable font sizes, and font sizes must be whole numbers. This limits the vertical size of FW-rendered calendars to no smaller than about 3.125". Although small calendars will appear proportional to larger calendars, the text sizes may be slightly different.



SunCalc

You can add the sunrise and/or sunset times to each day if you have SunCalc by Brian Savage installed. Use the Variable Editor to set the variable SunCalcPath to the path of the SunCalc application.

The settings for SunCalc (the longitute, latitude, timezone, and hour format) are read from the environment variables as described in the SunCalc documentation. FWCalendar can take into account changes to and from daylight savings time (change the AdjustDST variable if your location doesn't participate in DST time changes).



Launching Programs
or
Executing Commands

If you would like to execute a command or launch an application upon FWCalendar completing either a monthly or yearly calendar, then set the LaunchM (to execute a command after completing a monthly calendar) or LaunchY (to execute a command after completing a full-year calendar) variable. You'll want to have an understanding of ARexx to do this, since the LaunchM and LaunchY variables are simply INTERPRETed. Some possibilities might be:

For either host application (Final Writer or PageStream), for use with monthly calendars only:
Start FWCAddEvent:   LaunchM = 'call "'scriptdir'FWCAddEvent.rexx"'

For either host application (Final Writer or PageStream), for use with monthly or yearly calendars:

Delete temporary files:   LaunchM = 'address command "delete >NIL: "Storage" all force quiet"'

When the host application is Final Writer, :

Save the calendar:   LaunchM = 'SAVE'
Import an image:   LaunchM = 'INSERT GRAPHIC'

When the host application is PageStream, for use with monthly or yearly calendars:

Save the calendar:   LaunchM = 'SAVEDOCUMENT DEFAULT'
Import an image:   LaunchM = 'PLACEGRAPHIC'
Save as a graphic:   LaunchM = 'SELECTOBJECT ALL; GROUP; EXPORTGRAPHIC'


Y2K and Dates

I have replaced all Date() function calls (except those asking for the current date) with DateInfo() function calls. DateInfo() is a subroutine I wrote to mimic the behavior of Date() in all ways except that it allows (theoretically) any dates to be used (the Date() function is limited to dates between Jan 1, 1978 and Dec 31, 2099, inclusive).

The routine used to determine a specific date from a serial date was taken from Astronomical Computing, Sky & Telescope, May, 1984. The routine used to determine a serial date from a specific date was taken from PerpetualCalendar.bas that appeared in Astronomical Computing, Sky & Telescope, July, 1985. I do not pretend to have an understanding of how these routines work, and therefore cannot warrant that they are accurate. I do know, however, that Date() and DateInfo() return identical results for all options (except option 'C', see below) and all dates for which Date() is valid. Note, though, that I doubt the function takes into account the transition to the Gregorian calendar back in the 1500s.

Option 'C' for Date() returns the number of days since Jan 1, 1900, while DateInfo() returns the number of days since the beginning of the "millenium" in which the date occurs (eg, Jan 1, xx00).

This means that FWCalendar is Y2K compliant, and should be valid for any possible date.



Localization

FWCalendar is localized for several languages (currently English, German, Swedish, Italian, Spanish, French, Norsk, and Portugese) by including the proper translations for month names, weekday names, and requester strings in the FWCTranslations.txt file. Not speaking any of these languages other than English, I relied on help from people using these macros or used the translation utility available from Alta Vista to translate the information. Without your help, I have no way of confirming the accuracy of these translations.

In addition to New Year's Day and Christmas, national holidays or celebration days are listed for many countries: America, England, France, Germany, Ireland, Italy, Norway, Scotland, Spain, and Sweden. Much of the information for this area was obtained from The Worldwide Holiday & Festival Site. I would appreciate your contributions for other countries. Please email me the "highlights" for your country and I will update the available preference files.

To see the variables that can be localized, look at the FWCTranslations.txt file in the American folder or, if it exists, in the folder for any of the supported countries.



Tips & Solutions


Thank You!
Thanks to the following for giving me ideas, bug reports, and translation information:

Don Benson - Debugger extraordinaire!
Josh Brehm
Peter Bromer
Carl Butler
Marco Cavina
Richard Delzenero
D�maso Dom�nguez - Great contributions!
Bill Duxbury
Kevin Eckenrode - Lots of testing!
Phyllis Edberg
Terry Fry
Pierre Giroux
Robert Goodlett
Wil Haslup
Michael Hendren
Vincenzo Iodice
B�rje Karlsson
Warren Katchmar
Dimitris Keletsekis
Bob Kelly
J�rgen Klein
Mike McCool
Michael Merkel - Lots of help here!
Oliver Molz - Big thanks here!!!
Truls 'Ozzy1' Osmundsen
Johann Sam
LeVon Smoker
Will Stanton
Jerry Withers
Dieter Zimmermann

Also thanks to the many who have contributed to the program that have been inadvertently left off this list!



Can You Help?

If so, contact me!

Text Sizing: In the FWCAddEvent macro, the event text is sized to fit in the allowed space as determined by the number of days the event spans. Because the user is likely to be using proportional fonts for rendering text, I can't pre-determine how many text characters will fit in the allowed space. The sizing routine, then, involves:

  1. Rendering the text
  2. Get the length of the rendered text
  3. Compare this length to the allowed space
  4. If the text is too long, drop the last word (move it to the next line)
  5. Repeat at step one for the remaining text (and then for the remaining lines)

Although this process works, it seems rather cumbersome and time consuming. Do you have any ideas on how to more efficiently fit a line of text into a limited space?

Moon Phases: The routine I found for determining the phases of the moon seems to be accurate for the new moon and the full moon (within a few minutes) when compared to the moon phase tables available from the US Naval Observatory. My interpolations to come up with the first and last quarters, though, can be off by a day in many cases. Do you know of a fairly simple routine for calculating the four phases of the moon (new moon, first quarter, full moon, third quarter)?



Recent Changes

EndWeek variable allows selection of the date to use in the last calendar column. When used in conjunction with StartWeek, a range of days (e.g., Monday through Friday) can be printed.


(PageStream only) Multi-month calendars can be created where a single document consists of multiple calendars.


(ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

(ClassAct GUI only) ImageClass variables can now be added and deleted using the variable requester.


A minor change allows the use of earlier versions of ClassAct. Although ClassAct is the default GUI, use of BGUI can be forced by setting the ForceBGUI variable. If you can't get the ClassAct GUI to work for some reason, you may have to set ForceBGUI = 1 in your preference file using a text editor.


BGUI is still supported due to the unavailabity of current ClassAct classes

Added Random and History options (see data files)

Changed the way requesters are sent to the proper screen. RexxTricks is no longer required, but FrontPubScreen is. Other screen-identification applications will be supported upon request.

Bug fixes?


Required GUI interface is now ClassAct (used with AWNPipe) rather than BGUI (used with RexxBGUI)

Added printable version of docs (see bottom entry of index)

All variables that were described in terms of "fractions" are now described in terms of "percent." This means that all settings for the "fraction" variables now need to be expressed in percent. To do this, multiply the value of the "fraction" variable by 100. For example, TextAdj had a default value of 0.77; it's new default value is 77. You only need to make the conversion if one of the variables listed below shows up in your preference file (use any text reader to determine this):
DateOffset
HeaderLoc
HeaderSize
MagnifyExtras
MaxImgHeight
MaxImgWidth
MiniCalHeight
MiniCalSpacing
   MiniCalWidth
MoonRadius
StretchDateH
StretchDateW
TextAdj
TTextArea
WeekdaySize
WTextArea

The ability to add a box around the whole calendar area was added, as was the ability to add a "shadow" to the main calendar and the minicals. The following variables were added to implement these features:
CalendarBorder
Line.CalBorder
CalendarShadow
Background.CalShadow
   MiniCalShadow
Background.MiniCalShadow

The ability to change the header from the default August 2000 (for example) to a user-defined setting was added, as was the ability to add a user-defined subheader. The following variables were added to implement these features:
Header$
HeaderVars
   SubHeader$
SubHeaderVars
Font.SubHeader
SubHeaderSize
SubHeaderOffset

TabFactor, TabSub, and EventKey variables deleted.


CornerRadius variable - Causes date cells to bordered by rounded boxes rather than by a square grid. The entries in the cell (the date, highlights, and events) are shifted to accommodate the rounded corner. CornerRadius is fully adjustable in PageStream. In FinalWriter, the actual corner radius is set by the application; in this case, the value of CornerRadius serves to control the shift of entries in the cell.

DoBackgrounds variable deleted. The functionality is still there, but with the addition of the <Clear> option for the background colors, this variable is no longer required.


The variable editor now saves changes directly to the preference file (no more mysterious FWC.dat file).

Translation file is now separate from the preference file, allowing easy update of translations strings without messing with the preference file.

Highlight editor has been added to variable editor (no need to manually change the preference file any more except when adding imageclass variables).

All data format changes (including new translation file) are transparent to the user.

DoEaster variable deleted (functionality still there, variable not needed).

Fixed a problem with using DST in conjunction with printing sunrise/sunset times.


Allowed a note box to print where ever empty calendar cells would print. See DoNoteBox variable.


Allowed week 6 to be at the top of the calendar rather than split at the bottom of the calendar. See DoTopExtraWk variable.


Allowed biweekly events in FWCAddEvent, and weekly and biweekly highlights in FWCalendar. See Highlights, FWCAddEvent, and Prefs & Data for more information.


Added support for alternate graphics applications (in particular, ImageDTInfo by D�maso Dom?nguez). See Images for more information.

Added support for PostScript images. See Images for more information.

Added support for date.library by Kai Hofmann to be used rather than rexxmathlib.library.

Allowed various backgrounds to be transparent.


Font.Extras variable - The font to be used for printing extras (sunrise/sunset, julian/julian left, weeknumber) text.

MagnifyExtras variable - Adjusts the size of the extras text (sunrise/sunset, julian/julian left, weeknumber) by shrinking it or enlarging it relative to the font size used for highlights. A value less than 1 will shrink the text, while a value greater than 1 will enlarge the text.

Leading variable - Adjusts the amount of space between each line, expressed as a percentage of the font height. A leading of 100 (%) would mean the top of line 2 would be even with the top of line 1. A leading of 120 would mean the top of line 2 would be 20% of the font height below line 1. This is especially useful with PageStream which would normally default to a setting of 120% and results in lines looking very far apart on the calendar.

MinWidth variable - To maximize the amount of text (highlight or event) that will fit on a line, FWCalendar and FWCAddEvent will attempt to compress the line. This variable limits the extent of that compression. A setting of 100 (%) would mean no compression is allowed, while a setting of 80 would allow text to be compressed to as small as 80% of its normal width.


The format for the FWCAddEvent data file has changed. Sorry, but the change was necessary to accomodate the option to select the text color at the time the event is added.


Note especially addition of SunCalcPath, GfxAppPath, DoSunRise, and DoSunSet variables, and deletion of DoSunCalc variable.

See the new values for "extras" variables (DoPhases, DoWeeknumbers, DoSunRise, DoSunSet, etc).


StretchDateW/ variable - Multiplier used on calculated date-font width to increase or decrease the date-font width.

StretchDateH variable - Multiplier used on calculated date-font height to increase or decrease the date-font height.



FWCalendar History
(also see Recent Changes)

The archives in this section include the FWCAddEvent files that should work with the associated FWCalendar version.

v 4.13
3 Jun 01
  • EndWeek variable allows selection of the last week day to be printed. When used in conjunction with the StartWeek variable, a range of days (e.g., Monday through Friday) can be printed.

v 4.11
8 Jan 01
  • (ClassAct GUI only)Changes made to the settings in the variable editor will not be saved if a shift key is being held down.

v 4.09
23 Oct 00
  • (PageStream only) Multi-month calendars can be created where a single document consists of multiple calendars.
  • Bug fixes.

v 4.08
7 Oct 00
  • (ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).
  • (ClassAct GUI only) ImageClass variables can now be added and deleted using the variable requester.

v 4.07
25 Sep 00
  • A minor change allows the use of earlier versions of ClassAct
  • Added ForceBGUI variable

v 4.06
24 Sep 00
  • Fixed a bug in the Daylight Savings Time support
  • Improved behavior of some browser-lists (Class Act only)
  • Improved (?) documentation in Variables section

v 4.05
21 Sep 00
  • BGUI is still supported due to the unavailabity of current ClassAct classes
  • Added Random and History options (see data files)
  • Changed the way requesters are sent to the proper screen. RexxTricks is no longer required. See the notes in the Installation section and the HostScreen variable. Deleted ChangePubScreen and DoShanghai variables.
  • Added the following variables (see Recent Changes for details:
    CenterHistory
    Color.History
    AltColor.History
    MinHistoryWidth
       CenterRandom
    Color.Random
    AltColor.Random
    MinRandomWidth
       Background.Standard
    ShadowType
  • Bug fixes?

v 4.04
16 Aug 00
  • Required GUI interface is now ClassAct (used with AWNPipe) rather than BGUI (used with RexxBGUI)
  • Added printable version of docs (see bottom entry of index)
  • Changed format of the following variables (see Recent Changes for details:
    DateOffset
    HeaderLoc
    HeaderSize
    MagnifyExtras
    MaxImgPixHeight
    MaxImgPixWidth
       MiniCalHeight
    MiniCalSpacing
    MiniCalWidth
    MoonRadius
    StretchDateH
       StretchDateW
    TextAdj
    TTextArea
    WeekdaySize
    WTextArea
  • Added the following variables (see Recent Changes for details:
    CalendarBorder
    Line.CalBorder
    CalendarShadow
    Background.CalShadow
    MiniCalShadow
       Background.MiniCalShadow
    Header$
    HeaderVars
    SubHeader$
       SubHeaderVars
    Font.SubHeader
    SubHeaderSize
    SubHeaderOffset

v 4.02
18 Jul 00
  • The month used in the Highlight Editor now matches the month selected in the Variable Requester rather than the current month.
  • Different colors can now be set for each highlight rather than having all highlights print in the same color.

v 4.01
11 Jul 00
  • CornerRadius causes date cells to be bordered by rounded boxes rather than by a square grid (see recent changes for more details).
  • DoBackgrounds variable dropped, but functionality maintained.
  • Internal code cleanup (beware :))

v 4.00
4 Jun 00
  • The variable editor now saves changes to the preference file (no more mysterious FWC.dat file)
  • Translation file is now separate from the preference file
  • Highlight editor has been added to variable editor (no need to manually change the preference file any more)
  • All data format changes (including new translation file) are transparent to the user
  • DoEaster variable deleted (functionality still there, but the variable was no longer needed)

v 3.86
7 May 00
  • Allowed a note box to be printed where ever empty calendar boxes would be printed.
  • Color coded HTML docs

v 3.84
11 Mar 00
  • Allowed week 6 to be at the top of the calendar rather than split at the bottom of the calendar.

v 3.82
4 Mar 00
  • Allowed weekly and biweekly highlights

v 3.78
11 Jan 00
  • Bug fix in reading new variables
  • Better detection when bgui libraries are not available
  • Added HeaderSize and WeekdaySize variables
  • Added support for PostScript images
  • Added support for date.library by Kai Hofmann to be used rather than rexxmathlib.library
  • Allowed various backgrounds to be transparent

v 3.76
2 Dec 99
  • Added support for alternate graphics applications (in particular, ImageDTInfo by D�maso Dom�nguez)
  • Fixed a bug in calculating Easter-based highlights (thanks to Aller Persson)

v 3.74
1 Nov 99
  • Weekday/Month headings don't default to upper-case; they show up either mixed case or the way you define them in the preferences file

v 3.72
1 Nov 99
  • Can load different preference files for different needs
  • Added MagnifyExtras variable
  • Added "Export" option to variable requester
  • rexxtricks.library now used only for shanghaing windows

v 3.70
7 Oct 99
  • Added Leading and MinWidth variables
  • ShiftLMini.FW, ShiftLMini.PGS changed to simply ShiftLMini
  • ShiftRMini.FW, ShiftRMini.PGS changed to simply ShiftRMini

v 3.68
4 Oct 99
  • Fonts and colors are now accessible through the variable requester
  • Fixed a bug in locating the moon image
  • Allowance for non-English sentence structures added
  • See Variables section on GeneratingM$, GenMVars, GeneratingY$, GenYVars
  • Allowed images to be shifted from the center of the date box
  • Eliminated need for TestMode, Black$, and White$ variables

v 3.66
20 Sep 99
  • Extras (moonphases, julian days, etc) allowed on top or bottom
  • IMPORTANT: SunCalcPath, GfxAppPath, DoSunRise, DoSunSet variables added, DoSunCalc variable dropped
  • Values of several Do... variables changed

v 3.64
10 Sep 99
  • Improved variable editor incorporated in opening requester
  • Beep and PeekQual no longer used
  • Support for FWCalendarY.data dropped
  • Added progress indicator to Final Writer calendars
  • Added StretchDateW variable
  • Changed StretchDate variable to StretchDateH
  • Eliminated need for DoDebug variable (more robust error reporting)
  • Automatically adjusts widths of highlights that are too wide
  • DoHide now defaults to 0 rather than 1 (will not hide at all unless all other PageStream windows are closed)
  • DoShanghai now defaults to 1
  • Added several locale strings

v 3.62
25 Aug 99
  • BGUI is used for all requesters. bgui.library and rexxbgui.library are REQUIRED. rexxreqtools.library is no longer used.
  • MUIRexx and Gui4CLI are no longer used for any requesters
  • Improved error reporting (added DoDebug variable)
  • Dates outside the range Jan 1, 1978 - Dec 31, 2099 allowed
  • Added HighlightRows, Reset$, VarGUITitle$, EnterDateInfo$ variables
  • Deleted MonthOrYear$, EnterYear$, YearSelect$, EnterMonth$, MonthSelect$, and MonthUnknown$ variables

v 3.60
4 Aug 99
  • Added ability to insert images on specified days. See the "Images" section and the DoImages, ImageClass., MaxPicWidth, and MaxPicHeight variables

v 3.57
26 Jul 99
  • Took some variables out of the "ListAll" option

v 3.56
25 Jul 99
  • Added ShiftLMini., ShiftRMini., and ListAll variables

v 3.54
11 Jul 99
  • Re-worked variables to prevent overlapping
  • Allowed files to be installed in ANY directory
  • Renamed AddEvent.rexx to FWCAddEvent.rexx
  • Added FinalView variable
  • Address change

v 3.52
5 May 99
  • Fixed an overlap of variables preventing Text. strings from working

v 3.50
28 Apr 99
  • Added DoDateBox variable
  • Added DoShanghai variable
  • Fixed one small and one large problem with the Variable Editor

v 3.48
24 Apr 99
  • Added word wrap for highlights

v 3.46
23 Apr 99
  • Added DoJulianLeft variable to print days remaining in the year
  • Internal changes ... hope I didn't mess anything up

v 3.44
22 Apr 99
  • Oops. Left debugging settings in (result: only December printed in yearly calendar)

v 3.44
21 Apr 99
  • Moved reading of margin settings from FW's Layout/Page... requester to FW's Layout/Section... requester. Settings in the FWCalendar.data file will still override settings in FW
  • Added a credit line to the calendars

v 3.42
18 Apr 99
  • Changed behavior of variable editor

v 3.40
17 Apr 99
  • Added a simple variable editor

v 3.36
14 Apr 99
  • Fixed a bug that caused monthly events in October to be assigned to January

v 3.35
14 Apr 99
  • Added ability to include monthly and end-of-month events
  • Added ability to have weekend-exceptions to events
  • Fixed a bug introduced by the addition of the Easter-date algorithm (caused the yearly calendar to skip Jan - Mar!)
  • Fixed a bug that prevented the Moon routine from working on some systems

v 3.32
8 Apr 99
  • Norsk localization added (thanks Truls!). No changes to the program.

v 3.32
7 Apr 99
  • Slightly improved routine for drawing moon phases

v 3.30
6 Apr 99
  • Replaced Easter-date lookup table with an algorithm
  • Included option to include the phases of the moon
  • Added DoEaster, DoPhases, MoonRadius, FullIsFilled, and Color.Moon variables

v 3.25
4 Mar 99
  • Fixed bug when FINALW.1 wasn't the Final Writer port

v 3.20
2 Mar 99
  • Fixed small DoWeekNumber bug
  • Added HeaderLoc variable
  • Added British, Irish, Portugese, and Scottish data files

v 3.15
16 Feb 99
  • Changed a command to allow macro to work with pre-v 3.4 PageStream

v 3.10
14 Feb 99
  • Added StretchDate variable
  • Added Font.Highlight variable (can be different from Font.Date)
  • Improved French translation file (thanks Pierre!)
  • Improved print routines to allow both single and double quotes
  • CAUTION: Calendars created not compatible with pre-v 3.10 AddEvent.rexx
  • Allowed for the absence of any Highlight data

v 3.05
13 Feb 99
  • Added Swedish FWCalendar.data file (thanks B�rje!)
  • Added option to print week number
  • Added text color options for Julian days, weeknumbers, and sunrise/sunset times
  • Added text prefix options for Julian days, weeknumbers, and sunrise/sunset times

v 3.02
7 Feb 99
  • Fixed an even smaller bug in TestMode

v 3.01
6 Feb 99
  • Fixed a small bug in TestMode

v 3.00
1 Feb 99
  • Extensive re-write - CHECK YOUR VARIABLES!
  • Fully scaleable
  • Works on Final Writer AND Pagestream
  • Fully localizable (see localization)
  • Updated Spanish data file
  • Start the calendar on any day of the week (eg, Monday, Tuesday, ..., Sunday)
  • Added Julian dates
  • Added sunrise/sunset times (via SunCalc)
  • Added the ability to launch a program or macro upon completion of the calendar

v 2.25
29 Dec 98
  • Separate data files can be used for Yearly and Monthly calendars
  • Added 'Orientation' ('Tall' or 'Wide') to variables
  • Multiple highlights on a single date improved (NO limitations!)
  • Floating date for Easter determined
  • Events based on time-after-Easter added (see Installation instructions)
  • Fixed the part of the Guide explaining how floating dates are calculated
  • Fixed the entry for calculating Thanksgiving (wrong on a recent upload, though previously working?)
  • Fixed the year for mini-calendars printed at the turn of the year (also wrong on a recent upload, though previously working)

v 2.20
10 Oct 98
  • Multiple highlights on a single date are now allowed (see Highlights

v 2.15
  • Allowed true cancellation of the "Save changes to document?" requestor
  • Added a TestMode to check the variables in the FWCalendar.data file.
  • Corrected the order in which user variables are read; resulted in the proper use of localized values for Black and White.
  • If Extended mode is turned off, the empty boxes are no longer drawn

v 2.10
  • Moved ALL user variables to FWCalendar.data file
  • Added control over colors for about everything (see variables)
  • Re-wrote (cleaned up) LOTS of the code

v 2.05
  • Not a version change, because it's exactly the same as the previous version 2.05 without my mistake of accidentally commenting out two essential lines. Do have some updates to the German and Italian translation (FWCalendar.data) files, though. SORRY!

v 2.05
  • Deleted my hard-coded margins. Oops!
  • Canned the FW requestors in favor of Reqtools requestors
  • Changed the way the upper area (the area with the mini-calendars and the month name) is calculated to allow for hard-coding margins (Dieter Zimmermann wanted his calendars to appear on the lower half of a portrait-oriented page, presumably to allow the addition of a picture on the upper half. Good idea, Dieter!)

v 2.0
  • Now 'localized' for American, German, Spanish, French, Italian, and Portugese

v 1.4
  • Full-year calendar now fills the full page
  • Font widths now work

v 1.3
  • Fixed macro to allow use of a comma for the decimal point instead of the period

v 1.2
  • Added box/bold of highlight dates in mini-calendars
  • Added option to print full year of calendars on a single page

v 1.1
  • De-Americanized macro (no longer assumes US Letter paper and inch units)

v 1.01
  • Corrected default margins
  • Removed my personal highlights
  • Set default fonts to more likely locations

v 1.0
  • First release


FWCAddEvent History
(see Recent Changes)
v 3.92
29 Jan 01
  • Bug fix in BGUI GUI

v 3.91
7 Oct 00
  • (ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

v 3.90
25 Sep 00
  • A minor change allows the use of earlier versions of ClassAct

v 3.89
24 Sep 00
  • A name-changed routine was fixed

v 3.88
6 Sep 00
  • BGUI is still supported due to the unavailabity of current ClassAct classes
  • If any line of an entry is compressed, all lines in that entry will use the same compression
  • Bug fixes?

v 3.87
16 Aug 00
  • Required GUI interface is now ClassAct (used with AWNPipe) rather than BGUI (used with RexxBGUI)
  • TabFactor, TabSub, and EventKey variables deleted.

v 3.84
11 Jul 00
  • Accommodated CornerRadius variable
  • Added RootDay variable to data file (see data files for details).
  • Internal code cleanup (beware :))

v 3.78
11 Mar 00
  • Accommodated possibility of week 6 being on top of the calendar rather than split at the bottom of the calendar.

v 3.76
4 Mar 00
  • Allowed biweekly events

v 3.74
11 Jan 00
  • Allowed various backgrounds to be transparent.

v 3.72
25 Oct 99
  • Added ability to modify fonts
  • FWCAddEvent data file format changed ... for the last time

v 3.70
7 Oct 99
  • Added Leading and MinWidth variables
  • Added events will now not overwrite the date

v 3.66
4 Oct 99
  • FWCAddEvent.data format changed to accomadate ability to change event text color as event is added
  • Cycle gadget added for colors
  • Support for tint (PageStream only) dropped

v 3.64
20 Sep 99
  • Bug fixes

v 3.62
10 Sep 99
  • Automatically adjusts widths of events that are too wide
  • Added several locale strings
  • Will only work with FWCalendar.rexx v3.64+ calendars

v 3.60
25 Aug 99
  • BGUI is used for all requesters. bgui.library and rexxbgui.library are REQUIRED. rexxreqtools.library is no longer used.
  • MUIRexx and Gui4CLI are no longer used for any requesters
  • Improved error reporting (added DoDebug variable)
  • Allowed specifying boxcolor for boxed highlights
  • Allowed empty boxes to be created
  • Added BoxColor$ string
  • Added AddEventRows and EventKey variables
  • FWCADDEVENT.DATA FORMAT CHANGED

v 3.50
10 Jul 99
  • Re-worked variables to prevent overlapping
  • Allowed files to be installed in ANY directory
  • Renamed AddEvent.rexx to FWCAddEvent.rexx
  • Added EnterStartdate$, EnterEvent$, SelectFile$, and File$ variables
  • Allowed pre-defined event files to be used (see Data�Files)
  • Fixed problem of added events creeping down the calendar

v 3.30
3 Jun 99
  • Fixed a bug that might cause events to print in the wrong size

v 3.28
15 May 99
  • Now PROPERLY reads DoShanghai variable (see "Recent Changes")

v 3.27
14 May 99
  • Now reads DoShanghai variable (see "Recent Changes")

v 3.25
4 Mar 99
  • Fixed bug when FINALW.1 wasn't the Final Writer port

v 3.20
2 Mar 99
  • Allowed events to be added to the top line
  • Added TabSub and TabFactor variables
  • Added an informational requester if neither MUIRexx nor Gui4Cli can be found

v 3.15
16 Feb 99
  • Changed a command to allow macro to work with pre-v 3.4 PageStream

v 3.10
14 Feb 99
  • Improved print routines to allow both single and double quotes
  • CAUTION: Not compatible with pre-v 3.10 FWCalendars

v 3.00
1 Feb 99
  • Fully localizable
  • Can use either MUIRexx (recommended) or Gui4Cli

v 2.50
29 Dec 98
  • Fixed some calls that may or may not have caused some people problems

v 2.45
10 Oct 98
  • Modified slightly to work around the fact that on some machines the Gui4Cli routine signalled that it was done before it really was.

v 2.40
  • Accommodated changes in FWCalendar.data file

v 2.35
  • Accommodated the upper-area-calculation change made in FWCalendar.rexx macro.

v 2.3
  • Fixed bug that didn't allow the close gadget to work
  • Now 'localized' for American, German, Spanish, French, Italian, and Portugese

v 2.2
  • Can now (indirectly) enter the '$' in events (see User�Variables)

v 2.1
  • Fixed macro to allow use of a comma for the decimal point instead of the period

v 2.0
  • Now REQUIRES Gui4Cli, but what an improvement!
  • Can enter weekly events

v 1.2
  • De-Americanized macro (no longer assumes US Letter paper and inch units)

v 1.1
  • Corrected default margins
  • Set default fonts to more likely locations
  • Added multi-line, auto-breaking, non-boxed events

v 1.0
  • First release